package me.itsoo.artemis.framework.ioc.lang;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Inject
 *
 * @author zxy
 * @version 0.0.1
 * @since 2023/6/2
 */
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Inject {

    /**
     * Bean 名称
     *
     * @return String
     */
    String value() default "";

    /**
     * 必要的依赖 {@link me.itsoo.artemis.framework.ioc.exception.NoSuchBeanException}
     *
     * @return boolean
     */
    boolean require() default true;

}
